package cn.zqy.demo2.day13StreamAndMethodReference.SuperThisMethodReference;

/*
    子类
 */
public class Zi extends Fu {
    //子类重写父类printFu的方法
    @Override
    public void printFu(String s) {
        super.printFu("子类重写父类方法"+s);
    }

    //定义一个方法参数传递PrintString接口
    public void method(String s, PrintString p){
        p.printStr(s);
    }

    public void show() {
        method("，不知道是啥", (s) -> {
            //创建父类对象
            Fu f = new Fu();
            //调用父类的方法
            f.printFu(s);
        });

        //因为有子父类关系,所以存在的一个关键字super,代表父类,所以我们可以直接使用super调用父类的成员方法
        method(",第二次调用", (s) -> {
            super.printFu(s);
        });
        /*
           使用super引用类的成员方法
           super是已经存在的
           父类的成员方法sayHello也是已经存在的
           所以我们可以直接使用super引用父类的成员方法
       */

        method(",第三次", super::printFu);
    }

    public static void main(String[] args) {
        new Zi().show();
    }
}
